Skip to content

a11y + Lighthouse pass: skill listing + detail (SOL-8)#12

Open
VisionaireLabs wants to merge 1 commit into
masterfrom
agent/engineer/fe37840e
Open

a11y + Lighthouse pass: skill listing + detail (SOL-8)#12
VisionaireLabs wants to merge 1 commit into
masterfrom
agent/engineer/fe37840e

Conversation

@VisionaireLabs

Copy link
Copy Markdown
Collaborator

What

Accessibility + Lighthouse pass on the skill listing (/skills) and detail (/skills/[slug]) pages.

The earlier a11y commit (760fc59) had AA contrast; the later monochrome pass (665413c) reintroduced sub-AA grays, and the browse filters were never programmatically labeled.

Fixes

  • Contrast (WCAG 1.4.3): SkillCard + Leaderboard body/meta text moved off #555/#444/#333/#666 (2.8–3.7:1) to AA-passing #a3a3a3 (6.5:1) / #8a8a8a (5:1). Used literal hex rather than var(--muted) — custom properties live in external CSS and don't resolve in inline styles during the CSS-load window, falling back to the default link color (blue, 2.2:1).
  • Form labels (4.1.2 / select-name): search, category, platform <label>s now associated via htmlFor+id; price radios wrapped in a named radiogroup; sort <select> given an aria-label; view-toggle buttons given aria-pressed + aria-label.
  • link-in-text-block: underlined the inline "Visionaire Labs" footer links so they're distinguishable without relying on color.

Before → After (Lighthouse, desktop preset, production build)

Page Accessibility Performance CLS
/skills (listing) 88 → 100 100 → 100 0 → 0
/skills/[slug] (detail) 92 → 100 100 → 100 0 → 0

Resolved audits: color-contrast (549 nodes listing / 16 detail), select-name, link-in-text-block.

Performance was already 100 and CLS already 0 — both pages are statically prerendered (SSG), so there was no perf/CLS regression to fix; the gap was purely accessibility. Best-practices 100.

Build + lint pass.

🤖 Generated with Claude Code

…ages

The monochrome pass (665413c) reintroduced sub-AA grays the earlier a11y
commit had fixed, and the browse filters were never programmatically labeled.

- SkillCard / Leaderboard: replace #555/#444/#333/#666 body text with the
  AA-passing #a3a3a3 / #8a8a8a values (use literal hex, not var(--muted) —
  CSS custom props don't resolve in inline styles during the CSS-load window
  and fall back to the default link color).
- SkillsBrowser: associate search/category/platform <label>s via htmlFor+id
  (fixes select-name), name the price radiogroup, add aria-label to the sort
  <select>, and aria-pressed/aria-label to the view-toggle buttons.
- Footer: underline the inline "Visionaire Labs" links so they're
  distinguishable from surrounding text without relying on color
  (fixes link-in-text-block).

Lighthouse (desktop, prod build): listing a11y 88→100, detail 92→100.
Performance 100 and CLS 0 were already optimal (pages are static SSG).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
solidstate.cc Error Error Jun 3, 2026 10:37pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant